1. Technical Field
The present invention relates, generally, to a network system for conferencing an application over a group of servers and, more specifically, to a method for managing pixel information translated from an application in a conference to the group of servers. More specifically still, the present invention relates to a method to support X Windows applications that perform mathematical pixel manipulation by an X Windows conferencing enabler in a homogenous hardware environment. Additionally, the present invention relates to a method to support translation of pixels of X Windows applications by an X Windows conferencing enabler in a heterogenous hardware environment.
2. Description of the Related Art
X Windows provides distributed client/server support for two dimensional graphics. The X server manages the display for the application, two dimensional graphics within the window. The X Window conferencing enabler appears to the application to be an X server, while at the same time appearing to the X server as an application, as shown below. The X Windows conferencing enabler then connects to multiple X servers on behalf of the application, displaying the application""s windows on each display. The application is not aware that it is being displayed on multiple X servers. Such a networking system is fully described in commonly assigned U.S. patent application Ser. No. 08/387,500, Method and System For Switching Between Users In A Conference Enabled Application incorporated herein by reference for all purposes.
In the absence of a conferencing enabler, the application connects to an X server and communicates with it using X protocol, asking the X server to create resources such as windows or to reserve resources such as pixel values on the server. Depending upon the nature of the request, the X server may either execute the requested action without response, it may reply to the application or it may return an error if the request cannot be satisfied.
For instance, when an application needs to use a specific color, it communicates to the X server the red, green and blue values or the color name it needs to use and the X server determines a pixel ID that the application can use. From that point on, the application will only refer to the pixel ID. There are two possible formats for the pixel ID, indexed and composite, determined by the graphics adaptor used by the X server. An indexed pixel ID is a single index into the colormap and the composite pixel ID is decomposed into separate indices for the red, green and blue values of the color.
When an application attempts to draw an object of a specific color, it provides the X server with a source pixel ID and a function for combining the source pixel value with the pixel value already displayed at the destination location. The X server performs the requested mathematical operation on the source and destination pixel values to calculate the pixel value that it should use to determine the color to actually display. In most instances, an application will indicate a function of xe2x80x9ccopyxe2x80x9d, which simply means to copy the source pixel into the destination, thus displaying the xe2x80x9csourcexe2x80x9d color. In other cases, it is important to note that even if the application has allocated the source and destination pixel values, the result of the mathematical operation on these values may or may not be an allocated pixel.
When an X Windows application is running through a conferencing enabler, this process of selecting pixel IDs that are valid on each participant""s X server is a difficult one. In particular, there are three distinct cases the conferencing enabler must be able to support in order for an application in a conference to display the correct colors on each participants"" workstation. The most simple situation occurs when the application requests to use a function of xe2x80x9ccopyxe2x80x9d with source and destination pixel values that have both been allocated, and the participants"" workstations are the most common X capability of an 8-bit indexed visual type. In this case, the pixel ID mapping is no different than the mapping of any other resource identifiers.
The second case is when the application requests to use a function of xe2x80x9ccopyxe2x80x9d with source and destination pixel values that have both been allocated, and the participants"" workstations differ in their support of visual types. This is particularly difficult when the servers differ in the format of pixel IDs. Accordingly, what is needed is a method to accurately and quickly translate pixel IDs between X servers in a conference that differ in the format of pixel IDs that they support. Without this support, the application would not display correctly in a conferencing environment.
The third case is when the application requests a function other than xe2x80x9ccopyxe2x80x9d with source and destination pixels that have been allocated, when the participants"" workstations support identical formats of pixel IDs. Applications that deal with shaded images or visualization commonly use this technique to display detailed graphics. Unfortunately, solutions that are adequate in the other cases do not suffice when the application is performing these mathematical operations on pixel IDs. For, if the conference enabler simply distributed these requests with the appropriate pixel ID translation, the mathematical manipulations performed by each X server would yield a different pixel value, and, more likely than not, a different color would be displayed for each participant. Accordingly, the conferencing enabler must provide a means for applications that are dependent on mathematical manipulations performed on pixel values to display colors accurately for all the X servers in the conference.
It is therefore one object of the present invention to provide a network system for conferencing an application over a group of servers.
It is another object of the present invention to provide a method for managing pixel information translated from an application in a conference to the group of servers.
It is yet another object of the present invention to provide a method to support X Windows applications that perform mathematical pixel manipulation by an X Windows conferencing enabler in a homogenous hardware environment.
It is yet another object of the present invention to provide a method to support translation of pixels of X Windows applications by an X Windows conferencing enabler in a heterogenous hardware environment.
The foregoing objects are achieved as is now described. According to the present invention, a method of mapping pixel IDs between X servers that differ in the format of pixel IDs they support is disclosed. The method involves defining a specific type of map for each master/participant pair, thus allowing X servers that support different formats to participate in one conference and to view colors that are as close to the application""s request as each X server deems possible. A method of supporting applications that are dependent on mathematical operations on pixel values by an X Windows conferencing enabler is further disclosed. The mathematical operations on pixel values are common among X Windows applications that are color intensive, such as scientific visualization programs. This method allows these applications to be displayed with colors that are as close to the colors requested by the application as supported by the X server.
The above as well as additional objects, features, and advantages of the present invention will become apparent in the following detailed written description.